#pragma once

#include <vector>

class IRenderable;
class Renderer;

class ObjectManager
{
	std::vector<IRenderable*>	m_Objects;

public:
	static ObjectManager* getInstance();

	void Render();
	void Update();

	void RemoveObject(const IRenderable *pObject);
	void AddObject(IRenderable *pObject) { m_Objects.push_back(pObject); }
	void Clear();

private:
	ObjectManager(void);
	ObjectManager(const ObjectManager&);
	virtual ~ObjectManager(void);
	ObjectManager& operator =(const ObjectManager&);

	static Renderer *pRenderer;
};

